package com.jzo2o.foundations.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.foundations.model.domain.Serve;
import com.jzo2o.foundations.model.dto.request.ServePageQueryReqDTO;
import com.jzo2o.foundations.model.dto.request.ServeUpsertReqDTO;
import com.jzo2o.foundations.model.dto.response.ServeResDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 *服务类
 * </p>
 *
 * @author 耿志超
 * @since 2024/12/24
 */
public interface IServeService extends IService<Serve> {
	
	/**
	 *
	 * 分页查询服务列表
	 * @param servePageQueryReqDTO 查询条件
	 * @return 分页结果
	 */
	PageResult<ServeResDTO>page(ServePageQueryReqDTO servePageQueryReqDTO);
	
	/**
	 *
	 * 新增区域服务
	 * @param serveUpsertReqDTOList
	 */
	void batchAdd(List<ServeUpsertReqDTO>serveUpsertReqDTOList);
	
	/**
	 * 修改服务价格
	 * @param id
	 * @param price
	 * @return
	 */
	Serve update(long id, BigDecimal price);
	
	
	/**
	 * 上架区域服务
	 * @param id
	 * @return
	 */
	Serve onSale (Long id);
	
	/**
	 * 删除区域服务
	 * @param id
	 */
	void deleteRegionServe (Long id);
	
	/**
	 * 下架区域服务
	 * @param id
	 * @return
	 */
	Serve offSale(Long id);
	
	/**
	 * 设置区域服务热门|取消服务热门
	 * @param id
	 * @return
	 */
	void changeHot(Long id,Integer flag);
	
	
	/**
	 * 根据区域id和上架状态来查询服务的个数
	 * @param id
	 * @param saleStatus
	 * @return
	 */
	int querycountByRegionIdAndsaleStatus(Long id,Integer saleStatus);
	
	
	/**
	 * 根据区域id 查询该地区是否有正在上架的服务
	 * @param id
	 * @param saleStatus
	 * @return
	 */
	int queryServeCountByRegionIdAndSaleStatus(Long id, Integer saleStatus);
}
